package com.sharer.last.aspect;

import lombok.extern.slf4j.Slf4j;

/**
 * 切面处理oauth返回数据
 * @author 维狄
 * @date 2020-08-28 028 16:17
 */
//@Component
//@Aspect
@Slf4j
public class AuthTokenAspect {

    //https://blog.csdn.net/lki_suidongdong/article/details/105945477/
    /// @Around是可以改变controller返回值的
//    @Around("execution(* org.springframework.security.oauth2.provider.endpoint.TokenEndpoint.postAccessToken(..))")
//    public Object handleControllerMethod(ProceedingJoinPoint pjp) {
//        // 放行
//        Object                     proceed  = null;
//        Result response = new Result();
//        try {
//            proceed = pjp.proceed();
//        } catch (Throwable throwable) {
//            throwable.printStackTrace();
//            return  ResponseEntity.status(600).body("密码错误或该账户已被禁用");
//        }
//        if (proceed != null) {
//            ResponseEntity<DefaultOAuth2AccessToken> responseEntity = (ResponseEntity<DefaultOAuth2AccessToken>)proceed;
//            DefaultOAuth2AccessToken                 body           = responseEntity.getBody();
//            if (responseEntity.getStatusCode().is2xxSuccessful()) {
//
//                //格式化时间
//                LocalDateTime dateTime = LocalDateTime.now();
//                LocalDateTime plusSecondsResult = dateTime.plusSeconds(body.getExpiresIn());
//
//                Map<String,Object> result = new HashMap<>();
//                result.put("access_token",body.getValue());
//                result.put("token_type",body.getTokenType());
//                result.put("refresh_token",body.getRefreshToken().getValue());
//                result.put("access_token_expires_in",plusSecondsResult.toEpochSecond(ZoneOffset.of("+8")));
//
//                response.setCode(0);
//                response.setMsg("成功");
//                response.setData(result);
//            } else {
//                log.error("error:{}", responseEntity.getStatusCode().toString());
//                response.setCode(-1);
//                response.setMsg("获取授权码失败");
//            }
//        }
//        return ResponseEntity
//                .status(200)
//                .body(response);
//    }
}
